package com.muyu.common.core.utils;

import org.apache.commons.lang3.ObjectUtils;

import java.math.BigDecimal;

/**
 * @author DongZl
 * @description: 对象工具类
 * @Date 2023-10-9 下午 04:56
 */
public class ObjUtils {

    /**
     * 兼容
     * CharSequence: 如果长度为零，则认为为空。
     * Array: 如果长度为零，则认为为空。
     * Collection: 如果元素为零，则认为为空。
     * Map: 如果键值映射为零，则认为为空。
     * @param o 对象
     * @return 如果对象具有受支持的类型并且为空或null，则为true，否则为false
     */
    public static boolean notNull(Object o){
        return ObjectUtils.isNotEmpty(o);
    }

    /**
     * 判断long类型不为0
     * @param val 值
     * @return 返回值不为0
     */
    public static boolean notNull(Long val){
       return ObjectUtils.isNotEmpty(val) && val != 0;
    }

    /**
     * 判断Integer类型不为0
     * @param val 值
     * @return 返回值不为0
     */
    public static boolean notNull(Integer val){
       return ObjectUtils.isNotEmpty(val) && val != 0;
    }
    /**
     * 判断BigDecimal类型不为0
     * @param val 值
     * @return 返回值不为0
     */
    public static boolean notNull(BigDecimal val){
       return ObjectUtils.isNotEmpty(val) && val.doubleValue() == 0.00;
    }
    /**
     * 判断BigDecimal类型不为0
     * @param val 值
     * @return 返回值不为0
     */
    public static boolean notChildNull(Object[] val){
        for (Object o : val) {
            if (!notNull(o)){
                return false;
            }
        }
       return true;
    }
}
